This disclosure relates generally to methods, systems, and computer program products for scheduling one or more computer-system related resources.
For many different types of applications, resource(s) may be tasked in a fashion such that meeting the requirements of all requests is impossible. This may be true for Intelligence, Surveillance, and Reconnaissance (ISR) applications where a region of the earth needs to be viewed at regular intervals, for example. Therefore, different methods may be employed for having resource(s) execute requests. One such method may be known as “spot interleaving,” as shown in FIG. 1A. The “spot interleaving” method generally involves executing a first request, and before the first request has completed, pausing the first request and begin executing a second request. The second request is then paused after a period of time, at which point either the first request or yet another task is resumed, and vice versa. Therefore, the resource(s) interleaves all requests until at least one of the requests is completed. A problem with the “spot interleaving” method is that excessive interleaving may cause inefficient use of resource(s), resulting in longer periods of time and/or more processing for completing requests.
Another method may be known as the “rank filling” method, as shown in FIG. 1B. The “rank filling” method generally involves assigning each request (or task) a rank. The higher ranked requests are performed before lower ranked requests are performed. Lower ranked requests then “fill-in” times when the resource(s) is available. A problem with the “rank filling” method is that it is inflexible; the highest rank task is performed exactly as requested and the other tasks are performed very inefficiently or not at all.
Another method may be known as “long range planning.” The long-range planning method involves planning ahead of time when to perform certain requests through considering all possible scheduling plans and selecting the one with the best score. Drawbacks of the “long range planning” method are that it is inflexible and computationally intensive. Because the timeline of when to execute requests is planned ahead of time, the timelines needs to be recomputed when requests are added and deleted. Also, the “long range planning” method may become computationally intensive, especially when the number of requests and length of the timeline grows.